package com.demo.java.OD601_650.OD642;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【严格递增字符串(A卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146973775
 */
public class OdMain {
    public static void main(String[] args) {
        // 处理输入
        Scanner in = new Scanner(System.in);
        String input_str = in.nextLine();  // 读取输入字符串

        // 调用函数计算最小修改次数
        System.out.println(minFlipsMonoIncr(input_str));
    }

    // 计算最小修改次数
    public static int minFlipsMonoIncr(String s) {
        int n = s.length();
        int dp0 = 0, dp1 = 0;  // dp0表示将字符变成A的最少次数，dp1表示将字符变成B的最少次数

        for (int i = 0; i < n; i++) {
            char c = s.charAt(i);

            // 临时存储更新的 dp0 和 dp1
            int dp0New = dp0, dp1New = Math.min(dp0, dp1);

            // 更新 dp0 和 dp1
            if (c == 'B') {
                dp0New++;  // 当前字符是B，将其修改为A
            } else {
                dp1New++;  // 当前字符是A，将其修改为B
            }

            dp0 = dp0New;  // 更新dp0
            dp1 = dp1New;  // 更新dp1
        }

        // 返回将字符修改为A或B的最小次数
        return Math.min(dp0, dp1);
    }
}